package shujia.day07.ketang;

/*
   匿名内部类
        语句定义格式：
            new 类|抽象类|接口(){
                方法的重写;
            }
        由JVM自己底层造了一个类去继承或者实现我们的类或者接口，我们只需要关注方法的重写逻辑就可以了，然后JVM把这个没有名字的类
        造一个对应的对象。
 */

abstract class Demo3{
    public abstract void fun1();
}
//class Demo3Zi2 extends Demo3{
//    @Override
//    public void fun1() {
//        System.out.println("张成阳真帅！");
//    }
//}
//
//class Demo3Zi extends Demo3{
//    @Override
//    public void fun1() {
//        System.out.println("好好学习，天天向上！");
//    }
//}

class Demo3Test{
    public void show1(Demo3 demo3){
        demo3.fun1();
    }
}

public class NiMingClassDemo1 {
    public static void main(String[] args) {
        Demo3Test demo3Test = new Demo3Test();
//        demo3Test.show1(new Demo3Zi());
//        demo3Test.show1(new Demo3Zi2());

        demo3Test.show1(new Demo3() {
            @Override
            public void fun1() {
                System.out.println("好好学习，天天向上！");
            }
        });
    }
}
